package danran.regular;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

/**
 * @Classname FizzBuzz
 * @Description TODO
 * @Date 2021/10/13 14:08
 * @Created by ASUS
 * 412. Fizz Buzz
 *
 * 给你一个整数 n ，找出从 1 到 n 各个整数的 Fizz Buzz 表示，并用字符串数组 answer（下标从 1 开始）返回结果，其中：
 *
 *     answer[i] == "FizzBuzz" 如果 i 同时是 3 和 5 的倍数。
 *     answer[i] == "Fizz" 如果 i 是 3 的倍数。
 *     answer[i] == "Buzz" 如果 i 是 5 的倍数。
 *     answer[i] == i 如果上述条件全不满足。
 *
 *
 *
 * 示例 1：
 *
 * 输入：n = 3
 * 输出：["1","2","Fizz"]
 *
 */
public class FizzBuzz {

    public List<String> fizzBuzz(int n) {
        List<Integer> data = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            data.add(i + 1);
        }
        return data.stream().map(this::f).collect(Collectors.toList());
    }

    public String f(int n) {
        if (n % 3 == 0) {
            if (n % 5 == 0) return "FizzBuzz";
            else return "Fizz";
        } else {
            if (n % 5 == 0) return "Buzz";
            else return String.valueOf(n);
        }
    }
}
